import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'
import menu from './modules/menu'
Vue.use(Vuex)

const store = new Vuex.Store({
  // 组合模块的配置项
  modules: {
    user,
    menu
  },
  // 声明数据
  state: {
    message: '全局的state的message',
    userInfo: {
      uname: '张三',
      age: 20,
      money: 198
    }
  },
  // 同步方法
  mutations: {
    changeMessage(state, params) {
      console.log('我是mutations的值')
      state.message = params
    }
  },
  // 异步方法
  actions: {
    changeMessageSync(context, params) {
      setTimeout(() => {
        console.log('我是actions的值')
        context.commit('changeMessage', params)
      }, 1000)
    }
  }
  // getters类似于计算属性
  // getters: {
  //   nickName(state) {
  //     return state.userInfo.uname
  //   },
  //   money(state) {
  //     return state.userInfo.money.toFixed(2)
  //   },
  //   uName(state) {
  //     return state.user.userInfo.uname
  //   },
  //   userMoney(state) {
  //     return state.user.userInfo.money.toFixed(2)
  //   }
  // }
})

export default store
